<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>String</title>
    <script>
      /* 
        JS内置对象 - String对象,它提供了字符串操作的各种函数
      */
      //一. 字符串的创建
      //1.完整写法
      //let str = new String('abc')

      //2.简写方式
      let str = 'abc'

      //二. 字符串的常用函数
      //0.match(),matchAll(),学习正则表达式的时候再讲!

      //1.(重点)属性length,用来获取字符串字符个数
      console.log(str.length)

      //2.通过下标访问字符串指定字符
      //注意: 字符串和数组一样,也有下标,也可以通过下标访问字符串中的字符
      //注意: 字符串也可以使用[下标]来访问字符,但是不推荐,容易产生歧义
      console.log(str.charAt(1)) //(重点)
      console.log(str.charCodeAt(1)) //获取字符对应的ascii值
      console.log(str.at(1))
      console.log(str[1])

      //3.连接字符串
      //注意: 我们一般使用+来拼接字符串
      console.log('abcd'.concat('dcba', 'efg'))

      //4.(重点)判断字符串是否以指定内容开头或者结尾
      console.log('abcdef'.startsWith('abc'))
      console.log('abcdef'.endsWith('ef'))

      //5.(重点)判断字符串中是否包含指定内容
      console.log('abcdef'.includes('cd'))

      //6.(重点)获取字符串中首次出现指定内容的下标,如果不存在,则返回-1
      //lastIndexOf()
      console.log('abcdef'.indexOf('cd'))

      //7.字符串前后拼拓展
      //注意: 第一个参数表示拼接完成后字符串的总长度而非拼多少个!!!
      console.log('abc'.padEnd(5, 'A'))
      console.log('abc'.padStart(5, 'A'))

      //8.重复字符串
      console.log('abc'.repeat(3))

      //9.(重点)替换字符串
      //注意: replace()只会替换第一个符合条件的结果,而replaceAll()是全部替换
      console.log('你好,我是java老师,教java编程.'.replace('java', 'javascript'))
      console.log('你好,我是java老师,教java编程.'.replaceAll('java', 'javascript'))

      //10.(重点)截取字符串
      //注意: 下标范围是前闭后开
      console.log('123456789'.slice(2, 5)) //345
      console.log('123456789'.substring(2, 5)) //345

      //注意: 此函数第二个参数表示一共截取多少个字符
      console.log('123456789'.substr(2, 5)) //34567

      //11.(重点)切割字符串,返回包含所有子串的数组
      console.log('123-456-789'.split('-'))

      //12.转换大小写
      console.log('abc'.toUpperCase())
      console.log('ABC'.toLowerCase())

      //13.(重点)除去字符串前后空白
      console.log('   abc     '.trim())
      console.log('   abc     '.trimStart())
      console.log('   abc     '.trimEnd())
    </script>
  </head>
  <body></body>
</html>
